﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;
using System.Xml.Serialization;

namespace ITA
{
    /// <summary>
    /// A képhez tartozó adatok letárolására alkalmas osztály.
    /// </summary>
    public class Szoveg
    {

        private DateTime _datum;
        private string _rovid;
        private string _hosszu;
        private int _lokalizacio;

        /// <summary>
        /// Lokalizáció tárolása, mely amennyiben nincs eltárolva információ, az aktuális lokalizációt állítja be alapértelmezettként.
        /// </summary>
       
      /*  public CultureInfo Lokalizacio
        {
            get
            {
                /* if (_lokalizacio == 0)
                 {
                     _lokalizacio = CultureInfo.CurrentCulture.LCID;
         
                 }
                
                return new CultureInfo(_lokalizacio);
            }
            set { _lokalizacio = value.LCID; }
        }*/

        /// <summary>
        /// A lokalizació adattag int-ként való eltárolása.
        /// </summary>
        public int Lokalizacio1
        {
            get { return _lokalizacio; }
            set { _lokalizacio = value; }
        }


        /// <summary>
        /// A hosszú megjegyzést tárol (korlátlan).
        /// </summary>
        public string Hosszu
        {
            get { return _hosszu; }
            set { _hosszu = value; }
        }

        /// <summary>
        /// A rövid megjegyzést tárol (korlátos).
        /// </summary>
        public string Rovid
        {
            get { return _rovid; }
            set { _rovid = value; }
        }

        public DateTime Datum
        {
            get { return _datum; }
            set { _datum = value; }
        }

        public Szoveg()
        {
            _lokalizacio = CultureInfo.CurrentCulture.LCID;
        }

        /// <summary>
        /// Eldönti, hogy a példány megegyezőnek tekinthető-e a paraméterként megadott objektummal.
        /// </summary>
        /// <param name="obj">Az összehasonlítandó objektum.</param>
        /// <returns>True, ha a két objektum megegyezik, egyébként false.</returns>
        public override bool Equals(object obj)
        {
            Szoveg other = obj as Szoveg;



            return (other != null) && (_hosszu != null) && (_rovid != null) && (_datum == other._datum) && (_rovid == other._rovid)
                && (_hosszu == other._hosszu) && (_lokalizacio == other._lokalizacio);
        }

        /// <summary>
        /// A példány hashcode-jával tér vissza
        /// </summary>
        /// <returns>A példány hashcode-ja</returns>
        public override int GetHashCode()
        {
            int kod = _datum.GetHashCode() + _lokalizacio.GetHashCode();

            if (_rovid != null)
            {
                kod += _rovid.GetHashCode();
            }
            if (_hosszu != null)
            {
                kod += _hosszu.GetHashCode();
            }
            return kod;
        }

    }

}